Thank you for the quick response.
I've been testing this on my physical iPhone over the course of a few days so that's how I know it's not working (notification is triggered at wrong times).
You're right, I should probably check each day what the value of sunriseGoldenHourStart and sunsetGoldenHourStart. The problem is when I simply print the values out and run my code, this function won't be triggered until I tap on the 30mins before button to schedule the notification. This now prints out the correct sunriseGoldenHourStart value for today, but I will have the repeat the process the next day, again printing out the value for that current day and nothing later, so I'm now kinda stuck in this limbo. The point is that the user shouldn't need to be scheduling the notification 30mins before every single day. (I hope I've made any kinda of sense?)
According to the documentation, setting repeats to true means the notification will be repeated every day, rather than triggered once and stopping there, which is the functionality I want. I want the user to be notified every day 30 mins before golden hour starts.
And yes, I've removed some code in that function for clarity of the question, and some of that code basically checks if formattedSunsetGoldenHourStart.minute is less than 30 and does some simple logic to cover it. Thanks for pointing it out though!
I will try to debug some more with the values of sunrise and sunset GoldenHourStart and see what I'm getting. Thanks again for your response.